<?php

namespace app\api\model;
use think\Model;

class Product extends BaseModel{
    protected $autoWriteTimestamp = 'datetime';
    protected $hidden = [
        'delete_time', 'main_img_id', 'pivot', 'from', 'category_id',
        'create_time', 'update_time'];
        
    public function getMainImgUrlAttr($value)
    {
        return config('setting.img_prefix').$value;
    }

    public function imgs()
    {
        return $this->hasMany('ProductImage','product_id','id');
    }
    public function properties()
    {
        return $this->hasMany('ProductProperty','product_id','id');
    }
    public static function getMostRecent($count)
    {
        $products = self::limit($count)
        ->order('create_time desc')
        ->select();
        return $products;
    }
    public static function getByCategoryID($id)
    {
        $category = self::where('category_id','=',$id)->select();
        return $category;
    }
    public static function getProductDetail($id)
    {
        $product = self::with([
                'imgs' => function ($query)
                {
                    $query->with(['imgUrl'])
                    ->order('order','asc');
                }
            ])
            ->with(['properties'])
            ->find($id);
        return $product;
    }
}
